#!/usr/bin/env python
# -*- coding:utf-8 -*-

# file:zp_02_validPalindrome.py
# author:张世航
# datetime:2025/2/3 15:27
# software: PyCharm
"""
680. 验证回文串 II
简单
给你一个字符串 s，最多 可以从中删除一个字符。

请你判断 s 是否能成为回文字符串：如果能，返回 true ；否则，返回 false 。



示例 1：

输入：s = "aba"
输出：true
示例 2：

输入：s = "abca"
输出：true
解释：你可以删除字符 'c' 。
示例 3：

输入：s = "abc"
输出：false


提示：

1 <= s.length <= 105
s 由小写英文字母组成
"""
# import module your need



# 1.判断是否为回文数，ture/false
# 2.尝试删一个数，遍历删除一个数,重复进行判断函数,

class Solution:
    def validPalindrome(self, s: str) -> bool:

        left=0
        right=len(s)-1

        while left<right:
            if s[left]==s[right]:
                left+=1
                right+=1
            else:
                case1= self.ispalindrome(s,left+1,right)
                case2= self.ispalindrome(s,left,right-1)
                return case1 or case2
        return True

    def ispalindrome(self,s:str,left:int,right:int)->bool:
        while left<right:
            if s[left]!=s[right]:
                return False
            left+=1
            right+=1
        return True



